bitkeeper revision 1.1756 (42bd28eb7ZP0AhHHKYuqhX2z3XItTQ)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 25 Jun 2005 09:50:35 +0000 (09:50 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 25 Jun 2005 09:50:35 +0000 (09:50 +0000)
Allow setting of ACM security policy at build time.
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
BitKeeper/etc/ignore
xen/Makefile
xen/Rules.mk
xen/include/public/acm.h

index e8c82227fea40e261a3e153f1f23a8ee89974da6..d9b1b780c078d36a979371412ab24ef1a7b97c9a 100644 (file)
@@ -167,6 +167,7 @@ xen/include/asm-*/asm-offsets.h
 xen/include/hypervisor-ifs/arch
 xen/include/public/public
 xen/include/xen/*.new
+xen/include/xen/acm_policy.h
 xen/include/xen/banner.h
 xen/include/xen/compile.h
 xen/tags
index 16ba9c2046348185057e2dde1fef1bcc0c82a8aa..4f6f17c4f77af3db6dc51bed9b2a1579b27ca5cb 100644 (file)
@@ -51,24 +51,40 @@ clean: delete-unfresh-files
        rm -f include/asm *.o $(TARGET)* *~ core
        rm -f include/asm-*/asm-offsets.h
        rm -f tools/figlet/*.o tools/figlet/figlet
+       rm -f include/xen/acm_policy.h
 
 $(TARGET): delete-unfresh-files
        $(MAKE) include/xen/compile.h
+       $(MAKE) include/xen/acm_policy.h
        [ -e include/asm ] || ln -sf asm-$(TARGET_ARCH) include/asm
        $(MAKE) -C arch/$(TARGET_ARCH) asm-offsets.s
        $(MAKE) include/asm-$(TARGET_ARCH)/asm-offsets.h
        $(MAKE) -C common
        $(MAKE) -C drivers
-ifdef ACM_USE_SECURITY_POLICY
+ifneq ($(ACM_USE_SECURITY_POLICY),ACM_NULL_POLICY)
        $(MAKE) -C acm
 endif
        $(MAKE) -C arch/$(TARGET_ARCH)
 
-# drivers/char/console.o may contain static banner/compile info. Blow it away.
+# drivers/char/console.o contains static banner/compile info. Blow it away.
 delete-unfresh-files:
        rm -f include/xen/banner.h include/xen/compile.h drivers/char/console.o
        $(MAKE) -C arch/$(TARGET_ARCH) delete-unfresh-files
 
+# acm_policy.h contains security policy for Xen
+include/xen/acm_policy.h:
+       @(set -e; \
+         echo "/*"; \
+         echo " * DO NOT MODIFY."; \
+         echo " *"; \
+         echo " * This file was auto-generated by xen/Makefile $<"; \
+         echo " *"; \
+         echo " */"; \
+         echo ""; \
+         echo "#ifndef ACM_USE_SECURITY_POLICY"; \
+         echo "#define ACM_USE_SECURITY_POLICY $(ACM_USE_SECURITY_POLICY)"; \
+         echo "#endif") >$@
+
 # compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
 include/xen/compile.h: LANG=C
 include/xen/compile.h: include/xen/compile.h.in include/xen/banner.h
index 76489cfa4b882a886a589ceaf0adaebff0b944db..751bf460d38de9029f43c959b4e3c551d3f61f9e 100644 (file)
@@ -1,4 +1,7 @@
-
+#
+# If you change any of these configuration options then you must
+# 'make clean' before rebuilding.
+#
 verbose     ?= n
 debug       ?= n
 perfc       ?= n
@@ -8,6 +11,14 @@ optimize    ?= y
 domu_debug  ?= n
 crash_debug ?= n
 
+# ACM_USE_SECURITY_POLICY is set to security policy of Xen
+# Supported models are:
+#      ACM_NULL_POLICY (ACM will not be built with this policy)
+#      ACM_CHINESE_WALL_POLICY
+#      ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY
+#      ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY
+ACM_USE_SECURITY_POLICY ?= ACM_NULL_POLICY
+
 include $(BASEDIR)/../Config.mk
 
 # Set ARCH/SUBARCH appropriately.
@@ -35,7 +46,7 @@ OBJS    += $(patsubst %.c,%.o,$(C_SRCS))
 ALL_OBJS := $(BASEDIR)/common/common.o
 ALL_OBJS += $(BASEDIR)/drivers/char/driver.o
 ALL_OBJS += $(BASEDIR)/drivers/acpi/driver.o
-ifdef ACM_USE_SECURITY_POLICY
+ifneq ($(ACM_USE_SECURITY_POLICY),ACM_NULL_POLICY)
 ALL_OBJS += $(BASEDIR)/acm/acm.o
 endif
 ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
index 31191b7b5a710f5a723a6d441c64b6f1e57492e2..9b6d97ffb330f9805b1e88f88a48f3d1ce32d5f8 100644 (file)
@@ -22,8 +22,8 @@
  * todo: move from static policy choice to compile option.
  */
 
-#ifndef _XEN_PUBLIC_SHYPE_H
-#define _XEN_PUBLIC_SHYPE_H
+#ifndef _XEN_PUBLIC_ACM_H
+#define _XEN_PUBLIC_ACM_H
 
 #include "xen.h"
 #include "sched_ctl.h"
        (X == ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY) ? "CHINESE WALL AND SIMPLE TYPE ENFORCEMENT policy" : \
        "UNDEFINED policy"
 
-#ifndef ACM_USE_SECURITY_POLICY
-#define ACM_USE_SECURITY_POLICY ACM_NULL_POLICY
-#endif
-
 /* defines a ssid reference used by xen */
 typedef u32 ssidref_t;